import { createRouter, createWebHashHistory } from 'vue-router'
import HomePage from '../components/HomePage.vue'

const routes = [
  {
    path: '/',
    name: 'home',
    component: HomePage,
    meta: {
      title: '首页',
      level: 1 // 一级页面
    }
  },
  {
    path: '/search',
    name: 'search',
    component: () => import('../components/SearchPage.vue'),
    meta: {
      title: '搜索',
      level: 1 // 一级页面
    }
  },
  {
    path: '/user',
    name: 'user',
    component: () => import('../components/UserPage.vue'),
    meta: {
      title: '个人中心',
      level: 1 // 一级页面
    }
  },
  {
    path: '/news',
    name: 'news-list',
    component: () => import('../components/NewsListPage.vue'),
    meta: {
      title: '最新新闻',
      level: 2 // 二级页面
    }
  },
  {
    path: '/news/:id',
    name: 'news-detail',
    component: () => import('../components/NewsDetailPage.vue'),
    props: true,
    meta: {
      title: '新闻详情',
      level: 2 // 二级页面
    }
  },
  {
    path: '/login',
    name: 'login',
    component: () => import('../components/LoginPage.vue'),
    meta: {
      title: '登录',
      level: 2, // 二级页面
      hideTabBar: true // 隐藏底部导航
    }
  },
{
  path: '/about',
  name: 'about',
  component: () => import('../components/UserPage/AboutPage.vue'),
  meta: {
    title: '关于我们',
    level: 2, // 二级页面
    hideTabBar: true // 隐藏底部导航
  }
},
{
  path: '/feedback',
  name: 'feedback',
  component: () => import('../components/FeedbackPage.vue'),
  meta: {
    title: '意见反馈',
    level: 2, // 二级页面
    hideTabBar: true // 隐藏底部导航
  }
},
  {
    path: '/favorites',
    name: 'favorites',
    component: () => import('../components/FavoritesPage.vue'),
    meta: {
      title: '我的收藏',
      level: 2, // 二级页面
      hideTabBar: true // 隐藏底部导航
    }
  },
  {
    path: '/educational-center',
    name: 'educational-center',
    component: () => import('../components/EducationalCenterPage.vue'),
    meta: {
      title: '教务中心',
      level: 2, // 二级页面
      hideTabBar: true // 隐藏底部导航
    }
  },
  {
    path: '/history',
    name: 'history',
    component: () => import('../components/HistoryPage.vue'),
    meta: {
      title: '浏览历史',
      level: 2, // 二级页面
      hideTabBar: true // 隐藏底部导航
    }
  },
  {
    path: '/notifications',
    name: 'notifications',
    component: () => import('../components/NotificationsPage.vue'),
    meta: {
      title: '消息通知',
      level: 2, // 二级页面
      hideTabBar: true // 隐藏底部导航
    }
  },
  {
    path: '/system-notification/:id',
    name: 'system-notification-detail',
    component: () => import('../components/SystemNotificationDetail.vue'),
    props: true,
    meta: {
      title: '系统通知详情',
      level: 3, // 三级页面
      hideTabBar: true // 隐藏底部导航
    }
  },
  {
    path: '/course/:id',
    name: 'course-detail',
    component: () => import('../components/CourseDetail.vue'),
    props: true,
    meta: {
      title: '课程详情',
      level: 3, // 三级页面
      hideTabBar: true // 隐藏底部导航
    }
  },
  {
    path: '/menu',
    name: 'menu',
    component: () => import('../components/MenuPage.vue'),
    meta: {
      title: '菜单',
      level: 2, // 二级页面
      hideTabBar: true // 隐藏底部导航
    }
  },
  {
    path: '/settings',
    name: 'settings',
    component: () => import('../components/SettingsPage.vue'),
    meta: {
      title: '系统设置',
      level: 2, // 二级页面
      hideTabBar: true // 隐藏底部导航
    }
  }
]

const router = createRouter({
  // 使用Hash模式避免服务器配置问题，解决直接访问URL和刷新页面404的问题
  // history: createWebHistory(import.meta.env.BASE_URL), // History模式需要服务器配置
  history: createWebHashHistory(), // Hash模式，无需服务器配置，URL格式：/#/news/123
  routes
})

// 路由导航守卫，处理重定向
router.beforeEach((to, _from, next) => {
  // 检查是否是无效路由且需要重定向
  if (to.matched.length === 0) {
    const originalPath = to.path
    console.log('移动端路由守卫检测到无效路由:', originalPath)

    // 如果是有效的路由路径，尝试重定向
    if (originalPath.startsWith('/news/') ||
        originalPath.startsWith('/search') ||
        originalPath.startsWith('/user') ||
        originalPath.startsWith('/login')) {
      console.log('移动端重定向到Hash模式:', originalPath)
      window.location.replace(window.location.origin + '/#' + originalPath)
      return
    }
  }

  next()
})

export default router
